package com.engine4cloud.tdf.supervision.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.engine4cloud.tdf.common.core.constant.enums.ElectronicFenceTypeEnum;
import com.engine4cloud.tdf.common.data.web.response.PageInfo;
import com.engine4cloud.tdf.common.data.web.response.Params;
import com.engine4cloud.tdf.supervision.dto.create.JzdxElectronicFenceCreateDTO;
import com.engine4cloud.tdf.supervision.dto.query.JzdxElectronicFenceQueryDTO;
import com.engine4cloud.tdf.supervision.dto.result.AreaFenceResultDTO;
import com.engine4cloud.tdf.supervision.dto.result.JzdxCustomFenceSelectResultDTO;
import com.engine4cloud.tdf.supervision.dto.result.JzdxElectronicCoordinateResultDTO;
import com.engine4cloud.tdf.supervision.dto.result.JzdxElectronicFenceResultDTO;
import com.engine4cloud.tdf.supervision.dto.update.JzdxElectronicFenceUpdateDTO;
import com.engine4cloud.tdf.supervision.entity.JzdxElectronicFenceEntity;

import java.util.List;

public interface JzdxElectronicFenceService extends IService<JzdxElectronicFenceEntity> {

    PageInfo<JzdxElectronicFenceResultDTO> pageList(Params page, JzdxElectronicFenceQueryDTO dto);

    PageInfo<JzdxCustomFenceSelectResultDTO> customPageList(Params page, ElectronicFenceTypeEnum fenceType, String keywords);

    JzdxElectronicFenceResultDTO getById(Long id);

    Boolean create(JzdxElectronicFenceCreateDTO dto);

    Boolean update(JzdxElectronicFenceUpdateDTO dto);

    List<JzdxElectronicFenceResultDTO> findList(JzdxElectronicFenceQueryDTO code);

    Boolean createDefault(String code);
    void removeBatchByCode(String code);

    List<JzdxElectronicCoordinateResultDTO> findCoordinateList(String code);

    AreaFenceResultDTO findAreaFence(Long deptId);
}